home *** CD-ROM | disk | FTP | other *** search
/ SunSoft Catalyst CDWARE 1996 May to August / Catalyst CDWARE 1996 May to August.iso / .products / .bin / update.pl < prev   
Perl Script  |  1996-04-02  |  35KB  |  1,057 lines

  1. #!/usr/lab/bin/perl
  2. # ------------------------------------------------------------
  3.  
  4. # update.pl, by Jean-Pierre Girard (jpg@corrado.sun.com)
  5. # This allows the user to edit or create the _info file
  6. # necessary for the CDware.
  7. # version 1.0, Feb, 20 1996
  8. # ------------------------------------------------------------
  9.  
  10. # Bugs and other fixes
  11.  
  12. # ------------------------------------------------------------
  13. %Special = (
  14. "internet", "596,200"
  15. ,"Sun", "596,167"
  16. );
  17.  
  18. %GifImage = (
  19. "archive", "software.gif"
  20. ,"business", "software.gif"
  21. , "cad_cae", "software.gif"
  22. , "catalogs", "software.gif"
  23. , "client_server", "software.gif"
  24. , "desktop_apps", "software.gif"
  25. , "doc_mgt", "software.gif"
  26. , "epubs", "software.gif"
  27. , "graphics_imaging", "software.gif"
  28. , "info_mgt", "software.gif"
  29. , "multimedia", "software.gif"
  30. , "networking", "software.gif"
  31. , "security", "software.gif"
  32. , "sw_eng", "software.gif"
  33. , "sys_admin", "software.gif"
  34. , "telco", "software.gif"
  35. , "training", "software.gif"
  36. , "Hardware", "hardware.gif"
  37. , "Services", "services.gif"
  38. , "internet", "internet.gif"
  39. , "Sun", "sunban.gif"
  40. #, "Info", "software.gif"
  41. , "companies", "companies.gif"
  42. );
  43.  
  44. %Categories = (
  45. "archive", "Archiving, Storage Management & Backup Solutions"
  46. ,"business", "Business Solutions"
  47. , "cad_cae", "CAD/CAE"
  48. , "catalogs", "Catalogs"
  49. , "client_server", "Client/Server Solutions"
  50. , "desktop_apps", "Desktop Applications"
  51. , "doc_mgt", "Document Management"
  52. , "epubs", "Electronic Publishing"
  53. , "graphics_imaging", "Graphics and Imaging"
  54. , "info_mgt", "Information Management"
  55. , "internet", "Internet"
  56. , "multimedia", "Multimedia"
  57. , "networking", "Networking"
  58. , "security", "Security"
  59. , "sw_eng", "Software Engineering"
  60. , "sys_admin", "System Administration"
  61. , "telco", "Telecommunications"
  62. , "training", "Training"
  63. , "Hardware", ""
  64. , "Services", ""
  65. , "internet", "Internet"
  66. , "Sun", ""
  67. #, "Info", "Info"
  68. , "companies", ""
  69. );
  70.  
  71. ##############################################################################
  72. # PrintHtml:
  73. ##############################################################################
  74. sub PrintHtml
  75. {
  76.     local($StrHtml1, $Str, $StrHtml2) = @_;
  77.     
  78.     if ($HTML_FORMAT eq "true") {
  79.         print STDOUT $StrHtml1;
  80.     }
  81.  
  82.     print STDOUT $Str;
  83.  
  84.     if ($HTML_FORMAT eq "true") {
  85.         print STDOUT $StrHtml2;
  86.     }
  87. }
  88. ##############################################################################
  89. # CheckLinks:
  90. ##############################################################################
  91. sub CheckLinks
  92. {
  93.     &PrintHtml("<BR>", "\nChecking links1...\n", "<BR>");
  94.     $ListDir = `cd $PRODUCTS_DIR; ls`;
  95.     $ListDir =~ s/gui|CDware|DEV|hotjava|tempjas|temp//g;
  96.     #$ListDir =~ s/\n+/ /g;
  97.     @dirfields = split(/\s+/, $ListDir);
  98.     foreach $Dir (@dirfields) {
  99.         if ($Dir =~ /CDware|DEV/) {
  100.             next;
  101.         }
  102.         &PrintHtml("<DD><DD>",  "\t\tTesting $Dir ...\n", "<BR>");
  103.         $ListFiles = `find "$PRODUCTS_DIR/$Dir" -name "*.html" -print`;
  104.         $ListFiles .= `find "$PRODUCTS_DIR/$Dir" -name "*.htm" -print`;
  105.         #$ListDir =~ s/gui|CDware|DEV|hotjava|tempjas|temp//g;
  106.         @filefields = split(/\s+/, $ListFiles);
  107.         foreach $File (@filefields) {
  108.             if ($File =~ /CDware.(frame|head).html/) {
  109.                 next;
  110.             }
  111.             #&PrintHtml("<DD><DD>",  "\t\tTesting $File ...\n", "<BR>");
  112.             if (open (HTMLFILE, $File)) {
  113.                 while(<HTMLFILE>) {
  114.                     chop;
  115.                     $Line = $_;
  116.                     $LinePrint = $Line;
  117.                     if ($HTML_FORMAT eq "true") {
  118.                         $LinePrint =~ s/</</g;
  119.                         $LinePrint =~ s/>/>/g;
  120.                     }
  121.                     if ($Line =~ /HREF/i) {
  122.                         $Ref = $Line;
  123.                         $Ref =~ s/.*HREF *= *"?([^" >#]*)[" >#].*/\1/i;
  124.                         if ($Ref =~ /HrefButtonArea/) {
  125.                             $Ref =~ s/.*HrefButtonArea,\d+,\d+,\d+,\d+,([^" >]*)/\1/;
  126.                         }
  127.                         #print "\t$Line\n\t->$Ref\n";
  128.                         if ($Ref eq $Line) {
  129.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  130.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  131.                         }
  132.                         if ($Ref eq "" && $Line !~ /HREF *= *"?\#/i) {
  133.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  134.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  135.                         }
  136.                         if ($Ref !~ /mailto:|ftp:|http:\/\/|req_more_info.pl/i || $Ref =~ /http:\/\/localhost/) {
  137.                         #if ($Ref !~ /mailto:|ftp:|http:\/\/[^l]|req_more_info.pl/i) {
  138.                             #print "->$Ref\n";
  139.                             $ShortDir = $File;
  140.                             $ShortDir =~ s?(.*\/)[^/]*$?\1?;
  141.                             if ($Ref =~ /http:\/\/localhost/i) {
  142.                                 $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  143.                                 #print "\t\tin http:$ShortDir/$Ref from $File\n";
  144.                                 if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
  145.                                     &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  146.                                 }
  147.                             } elsif ($Ref =~ /file:/i) {
  148.                                 $Ref =~ s?file:///tmp/httpd/.products/(.*)$?$PRODUCTS_DIR/\1?;
  149.                                 #print "\t\tin file: $Ref from $File\n";
  150.                                 unless (-s "$Ref") {
  151.                                     &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  152.                                 }
  153.                             } else {
  154.                                 #print "\t\tin else: $ShortDir/$Ref from $File\n";
  155.                                 if ($Ref !~ /^#/) {
  156.                                     unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
  157.                                         &PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  158.                                     }
  159.                                 }
  160.                             }
  161.                         }
  162.                         
  163.                     }
  164.                     if ($Line =~ /<IMG/i) {
  165.                         $Ref = $Line;
  166.                         $Ref =~ s/.*IMG.*SRC *= *"?([^" >]*)[" >].*/\1/i;
  167.                         #print "\t$Line\n\t->$Ref\n";
  168.                         if ($Ref eq $Line) {
  169.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  170.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  171.                         }
  172.                         if ($Ref eq "") {
  173.                             &PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
  174.                             &PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
  175.                         }
  176.                         #print "->$Ref\n";
  177.                         $ShortDir = $File;
  178.                         $ShortDir =~ s?(.*\/)[^/]*$?\1?;
  179.                         if ($Ref =~ /http:\/\/localhost/i) {
  180.                             $Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
  181.                             #print "\t\tin http:$ShortDir/$Ref from $File\n";
  182.                             if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
  183.                                 &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  184.                             }
  185.                         } elsif ($Ref =~ /file:/i) {
  186.                             $Ref =~ s?file:///tmp/httpd/.products/(.*)$?$PRODUCTS_DIR/\1?;
  187.                             #print "\t\tin file: $Ref from $File\n";
  188.                             unless (-s "$Ref") {
  189.                                 &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  190.                             }
  191.                         } else {
  192.                             #print "\t\tin else: $ShortDir/$Ref from $File\n";
  193.                             if ($Ref !~ /^#/) {
  194.                                 unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
  195.                                     &PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
  196.                                 }
  197.                             }
  198.                         }
  199.                         
  200.                     }
  201.                     #$Line =~ tr/
  202.                 }
  203.                 close(HTMLFILE);
  204.             } else {
  205.                 &PrintHtml("<B>",  "ERROR: $File cannot be open\n", "</B><BR>");
  206.             }
  207.         }
  208.     }
  209. }
  210. ##############################################################################
  211. # CheckFiles:
  212. ##############################################################################
  213. sub CheckFiles
  214. {
  215.     $ListDir = `cd $PRODUCTS_DIR; ls`;
  216.     $ListDir =~ s/gui|CDware|DEV|hotjava|tempjas|temp//g;
  217.     #$ListDir =~ s/\n+/ /g;
  218.     @filefields = split(/\s+/, $ListDir);
  219.     foreach $Dir (@filefields) {
  220.         unless (-s "$PRODUCTS_DIR/$Dir/_info") {
  221.             &PrintHtml("", "WARNING: _info file missing in $Dir\n", "<BR>");
  222.         }
  223.     }
  224.     #print $ListDir;
  225. }
  226.  
  227. ##############################################################################
  228. # InitCompInfo:
  229. ##############################################################################
  230. sub InitCompInfo
  231. {
  232.     #$ListDir = `ls $PRODUCTS_DIR/[CD]*/_info`;
  233.     $ListDir = `ls $PRODUCTS_DIR/*/_info`;
  234.     #print "ls $PRODUCTS_DIR/*/_info";
  235.  
  236.     @filefields = split(/\s+/, $ListDir);
  237.     #print $filefields;
  238.     foreach $INFOFILENAME (@filefields) {
  239.         $ShortDir = $INFOFILENAME;
  240.         $ShortDir =~ s?.*/([^/]*)/_info$?\1?;
  241.         if (-s $INFOFILENAME && open (INFOFILE, $INFOFILENAME)) {
  242.             if ($REPORT ne "true") {
  243.                 #&PrintHtml("<DD><DD>", "\t\tReading $INFOFILENAME\n", "<BR>");
  244.             }
  245.     
  246.                     while (<INFOFILE>) {
  247.                         $Line = $_;
  248.                 unless ($Line =~ /^[     ]*$/ || $Line =~ /^#/) {
  249.                     last;
  250.                 }
  251.             }
  252.                     ($Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}) = split(/\^/, $Line);
  253.  
  254.             if ($CHECK eq "true") {
  255.                 $_ = $Line;
  256.                 #print "Line=$Line\n";
  257.                 $count = tr/^//;
  258.                 #print "$_: $count\n";
  259.                 if ($count != 7) {
  260.                     &PrintHtml("<B>", "ERROR: Not the correct number of parameters in the first line of $INFOFILENAME\n", "<BR>");
  261.                 }
  262.                 if ($Platform{$ShortDir} =~ /demo|testdrive|install/ && ! -d "$PRODUCTS_DIR/$ShortDir/_install") {
  263.                     &PrintHtml("<B>", "ERROR: Missing _install directory in $ShortDir\n", "<BR>");
  264.                 }
  265.                 if ($HomePageName{$ShortDir} eq "") {
  266.                     &PrintHtml("<B>", "ERROR: Missing Home page name in $ShortDir\n", "<BR>");
  267.                 } else {
  268.                     unless (-s "$PRODUCTS_DIR/$ShortDir/$HomePageName{$ShortDir}") {
  269.                         &PrintHtml("<B>", "ERROR: $HomePageName{$ShortDir} file missing in $ShortDir\n", "<BR>");
  270.                     }
  271.                 }
  272.             }
  273.             $ProdNum = 1;
  274.                     while (<INFOFILE>) {
  275.                 if ($_ =~ /^[     ]*$/ || $_ =~ /^#/) {
  276.                     next;
  277.                 }
  278.                 if ($CHECK eq "true") {
  279.                     unless ($_ =~ /^.*[^     ].*\^$/) {
  280.                         chop($_);
  281.                         &PrintHtml("<B>", "ERROR: Wrong line in $INFOFILENAME: \"$_\"\n", "<BR>");
  282.                     }
  283.                 }
  284.                             $Product=$_;
  285.                             chop($Product);
  286.                             chop($Product);
  287.                             $Products{$ShortDir . $ProdNum} = $Product;
  288.                 #print "jp = $Product\n";
  289.                 $ProdNum++;
  290.                     }
  291.             close(INFOFILE);
  292.             } else {
  293.                     &PrintHtml("", "Can't open $INFOFILENAME\n", "<BR>");
  294.         }
  295.     }
  296.     #foreach $ShortDir (sort keys(%Companies)) {
  297.         #print "$Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}\n";
  298.     #}
  299.     #%RevComp = reverse %Companies;
  300.     #if (@RevComp != @Companies) {
  301.         #print "WARNING: two directory with the same company name->possible problem!\n";
  302.     #}
  303.     %RevProd = reverse %Products;
  304.     if (@RevProd != @Products) {
  305.         &PrintHtml("", "WARNING: two products with the same name->possible problem!\n", "<BR>");
  306.     }
  307.     #print @Products;
  308.     #foreach $ShortDir (sort keys(%Products)) {
  309.         #print "$ShortDir, $Products{$ShortDir}\n";
  310.     #}
  311.     #foreach $ShortDir (sort keys(%RevProd)) {
  312.         #print "$ShortDir, $RevProd{$ShortDir}\n";
  313.     #}
  314.     #foreach $ShortDir (sort keys(%RevComp)) {
  315.         #print "$RevComp{ShortDir}\n";
  316.     #}
  317.     #print %RevComp;
  318. }
  319.  
  320. sub FilteredSort
  321. {
  322.     ($al = $a) =~ tr/A-Z/a-z/;
  323.     $al =~ s/^the //;
  324.     $al =~ s/^[     ]*//;
  325.  
  326.     ($bl = $b) =~ tr/A-Z/a-z/;
  327.     $bl =~ s/^the //;
  328.     $bl =~ s/^[     ]*//;
  329.  
  330.     $al cmp $bl;
  331. }
  332. sub FilteredSortComp
  333. {
  334.     $al = $Companies{$a};
  335.     $al =~ tr/A-Z/a-z/;
  336.     $al =~ s/^the //;
  337.     $al =~ s/^[     ]*//;
  338.  
  339.     $bl = $Companies{$b};
  340.     $bl =~ tr/A-Z/a-z/;
  341.     $bl =~ s/^the //;
  342.     $bl =~ s/^[     ]*//;
  343.  
  344.     #print STDOUT "$al =? $bl\n";
  345.     $al cmp $bl;
  346. }
  347.  
  348. ##############################################################################
  349. # CreateSoft
  350. ##############################################################################
  351. sub CreateSoft
  352. {
  353.     &PrintHtml("<BR>", "\nCreating Software page...\n", "<BR>");
  354.     $SOFTFILENAME = "$CAT_DIR/Software.html";
  355.     $SOFTHEADFILENAME = "$CAT_DIR/Software.head.html";
  356.     if (open (SOFTFILE, "> $SOFTFILENAME") && open(SOFTHEADFILE, "> $SOFTHEADFILENAME")) {
  357.         $old = select(SOFTHEADFILE);
  358.         $~ = "SOFTWAREHEAD"; 
  359.         write SOFTHEADFILE;   
  360.         close (SOFTHEADFILE); 
  361.  
  362.         select(SOFTFILE);
  363.         $~ = "CATBEGIN";
  364.         write SOFTFILE;
  365.  
  366.         $Letter = "0";
  367.         foreach $Cat (sort FilteredSort keys(%Categories)) {
  368.             unless ($Categories{$Cat} eq "") {
  369.                 $CatAb = $Categories{$Cat};
  370.                 $CatAb =~ tr/a-z/A-Z/;
  371.                 $CatAb =~ s/^THE //;
  372.                 #print STDOUT "$CatAb, $Letter\n";
  373.                 unless ($CatAb =~ /^$Letter/) {
  374.                     $Letter = substr($CatAb, 0, 1);
  375.                     print SOFTFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  376.                     #push (@Letters, $Letter);
  377.                 }
  378.                 print SOFTFILE "<DD><a href=\"http://localhost:7999/.categories/?DEST=$Cat&SIZE=42\"><B>$Categories{$Cat}</B></a><br>\n";
  379.             }
  380.         }
  381.         $~ = "CATEND";
  382.         write SOFTFILE;
  383.  
  384.         close (SOFTFILE);
  385.         select($old);
  386.     }
  387.     &PrintHtml("<DD>", "\tSoftware.html page created.\n", "<BR>");
  388. }
  389.  
  390. ##############################################################################
  391. # CreateCat: 
  392. ##############################################################################
  393. sub CreateCat
  394. {
  395.  
  396.     foreach $catword  ( sort keys(%Categories)) {
  397.         #chop $catword;
  398.         &PrintHtml("<BR>", "\nCreating $catword category page ...\n", "<BR>");
  399.              $CATFILENAME = "$CAT_DIR/$catword.html";
  400.              $CATHEADFILENAME = "$CAT_DIR/$catword.head.html";
  401.         #print STDOUT "Bef open, $CATFILENAME, $CATHEADFILENAME\n";
  402.         if (open (CATFILE, "> $CATFILENAME") && open(CATHEADFILE, "> $CATHEADFILENAME")) {
  403.             $old = select(CATFILE);
  404.  
  405.             $~ = "CATBEGIN";
  406.             write CATFILE;
  407.             $Letter = "0";
  408.             @Letters = ();
  409.             foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
  410.                 $Comp = $Companies{$ShortName};
  411.                 #print STDOUT "$ShortName, $Comp\n";
  412.                 
  413.                 unless ($ChosenCat{$ShortName} =~ /$catword/ 
  414.                     || $catword eq "companies") {
  415.                     next;
  416.                 }
  417.                 $CompAb = $Comp;
  418.                 $CompAb =~ tr/a-z/A-Z/;
  419.                 $CompAb =~ s/^THE //;
  420.                 unless ($CompAb =~ /^$Letter/) {
  421.                     $Letter = substr($CompAb, 0, 1);
  422.                     print CATFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  423.                     push (@Letters, $Letter);
  424.                 }
  425.  
  426.                     #print CATFILE "     <DD><a HREF=file:///tmp/httpd/.products/$ShortName/$HomePageName{$ShortName}><B>$Comp</B></a> $Description{$ShortName}\n";
  427.                     print CATFILE "     <DD><a HREF=file:///tmp/httpd/.products/$ShortName/$FRAMEBASICNAME><B>$Comp</B></a> $Description{$ShortName}\n";
  428.                                 print "<dd><b><i>", $Products{$ShortName . "1"}, "</i></b>\n" ;                             
  429.                                 if ($Products{$ShortName . "2"} ne "") {
  430.                                         print ", <b><i>", $Products{$ShortName . "2"}, "</i></b>\n" ;
  431.                                 }
  432.                                 if ($Products{$ShortName . "3"} ne "") {
  433.                                         print ", <b><i>", $Products{$ShortName . "3"}, "</i></b>\n" ;
  434.                                 }
  435. #
  436. #        This is for testdrive, install, and demo images
  437. #
  438.                 if ($Platform{$ShortName} =~ /demo/ ) {
  439.                 print CATFILE "<img src=\"../CDware/images/demo.gif\">";
  440.                 }
  441.                                 if ($Platform{$ShortName} =~ /testdrive/ ) { 
  442.                                 print CATFILE "<img src=\"../CDware/images/testdrive.gif\">";
  443.                                 } 
  444.                                 if ($Platform{$ShortName} =~ /install/ ) { 
  445.                 print CATFILE "<img src=\"../CDware/images/install.gif\">";
  446.                                 } 
  447.                 print CATFILE "\n";
  448.  
  449.                 }
  450.          
  451.         
  452.             $~ = "CATEND";
  453.             write CATFILE;
  454.             close (CATFILE);
  455.         
  456.             if ($Special{$catword} eq "") {
  457.                 $AppWidth="596"; 
  458.                  $AppHeight="75";
  459.             } else {
  460.                 @tmp=split(/,/,$Special{$catword});
  461.                                 $AppWidth=@tmp[0]; 
  462.                 $AppHeight=@tmp[1];
  463.             } 
  464.                 
  465.                         #&PrintHtml("<DD>", "\ttest $AppWidth $AppHeight $Special{$catword} $catword\n", "<BR>");
  466.  
  467.             select(CATHEADFILE);
  468.             $~ = "CATHEADERBEGIN";
  469.             write CATHEADFILE;
  470.  
  471.         print CATHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/$GifImage{$catword}\"  alt=\"\" USEMAP=#banner ismap>";
  472.         if ($catword ne "companies") {
  473.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=27,4,96,44>\n";
  474.         } else {
  475.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Services\" COORDS=27,4,96,44>\n";
  476.         }
  477.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=products\" COORDS=27,36,96,76>\n";
  478.         if ($catword ne "Hardware") {
  479.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Hardware\" COORDS=96,0,165,40>\n";
  480.         } else {
  481.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Software\" COORDS=96,0,165,40>\n";
  482.         }
  483.         if ($catword ne "Services" && $catword ne "companies" && $catword ne "internet") {
  484.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Services\" COORDS=96,38,165,78>\n";
  485.         } else {
  486.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Software\" COORDS=96,38,165,78>\n";
  487.         }
  488.                 if ($catword eq "Sun") {
  489.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Software&SIZE=35\" COORDS=198,85,366,170>\n";
  490.             print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Hardware&SIZE=35\" COORDS=401,85,575,170>\n";
  491.         }
  492.         if ($catword eq "internet") {
  493.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"../.Internet/cover.htm\" COORDS=180,0,596,166>\n";
  494.         } else {
  495.         print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"../CDware/index.html\" COORDS=198,0,596,62>\n";
  496. }
  497.         $~ = "CATHEADERMIDDLE";
  498.         write CATHEADFILE;
  499.  
  500.                 #print CATHEADFILE `cat $Header{$catword}`;
  501.             unless ($Categories{$catword} eq "") {
  502.                     print CATHEADFILE "<CENTER><FONT SIZE=24>$Categories{$catword}</FONT></CENTER>";
  503.             }
  504.     
  505.             #@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
  506.             if (@Letters > 1) {
  507.                 print CATHEADFILE "<B>Go to:  ";
  508.                 foreach $letter (@Letters) {
  509.                     print CATHEADFILE "<A HREF=\"?DEST=$catword&L=$letter" . ($Categories{$catword} eq ""? "" : "&SIZE=42") . "\">$letter</A>\n";
  510.                 }
  511.             }
  512.             $~ = "CATHEADEREND";
  513.             write CATHEADFILE;
  514.             close (CATHEADFILE);
  515.      
  516.             &PrintHtml("<DD>", "\t$catword category page created.\n", "<BR>");
  517.  
  518.             select($old);
  519.         } else {
  520.             die "\nERROR: Cannot write $CATFILENAME or $CATHEADFILENAME!\nTry to be superuser!\n\n";
  521.         }
  522.     }
  523. }
  524.  
  525. ##############################################################################
  526. # CreateReport:
  527. ##############################################################################
  528. sub CreateReport
  529. {
  530.     $TotalSize = 0;
  531.     foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
  532.         #$ShortName = $RevComp{$Comp};    
  533.         $Comp = $Companies{$ShortName};
  534.         &PrintHtml("<B>", "$Comp:\n", "</B><BR>");
  535.         &PrintHtml("<DD>", "\tProduct1: " . $Products{$ShortName . "1"} . "\n", "<BR>");
  536.         if ($Products{$ShortName . "2"} ne "") {
  537.             &PrintHtml("<DD>", "\tProduct2: " . $Products{$ShortName . "2"} . "\n", "<BR>");
  538.         }
  539.         if ($Products{$ShortName . "3"} ne "") {
  540.             &PrintHtml("<DD>", "\tProduct3: " . $Products{$ShortName . "3"} . "\n", "<BR>");
  541.         }
  542.         $Size = `du -ks $PRODUCTS_DIR/$ShortName`;
  543.         chop $Size;
  544.         $Size =~ s/(\d*).*/\1/;
  545.         &PrintHtml("<DD>", "\tTotal size: $Size Kb\n", "<BR>");
  546.         $TotalSize += $Size;
  547.         if ( $Platform{$ShortName} =~ /demo|testdrive|install/) {
  548.             &PrintHtml("<DD>", "\t", "");
  549.             if ($Platform{$ShortName} =~ /demo/) {
  550.                 &PrintHtml("", "Slide-show, ", "");
  551.             }
  552.             if ($Platform{$ShortName} =~ /testdrive/) {
  553.                 &PrintHtml("", "Demo version, ", "");
  554.             }
  555.             if ($Platform{$ShortName} =~ /install/) {
  556.                 &PrintHtml("", "Unlockable version, ", "");
  557.             }
  558.             &PrintHtml("", "\n", "<BR>");
  559.         }
  560.     }
  561.     &PrintHtml("<BR><BR>", "\n\nTotal size for all companies: $TotalSize Kb\n", "<BR>");
  562.     $Size = `du -ks $PRODUCTS_DIR/$ShortName`;
  563.     chop $Size;
  564.     $Size =~ s/(\d*).*/\1/;
  565.     &PrintHtml("", "Total size for .products: $Size Kb\n", "<BR>");
  566. }
  567.  
  568. ##############################################################################
  569. # CreateApplet:
  570. ##############################################################################
  571. sub CreateApplet
  572. {
  573.     &PrintHtml("", "\nBuilding Control bar applets ...\n", "<BR>");
  574.     $TmpFile = "/tmp/tmpupdateapplet";
  575.     foreach $Comp (sort keys(%Companies)) {
  576.         $FRAMEFILENAME = "$PRODUCTS_DIR/$Comp/$FRAMEBASICNAME";
  577.         if (open (FRAMEFILE, "> $FRAMEFILENAME")) {
  578.             print FRAMEFILE "<html> <head>\n<title>CDware May 1996: $Companies{$Comp}</title>\n</head>\n<FRAMESET ROWS=\"50,*\">\n<FRAME SCROLLING=\"no\" TARGET=\"_top\" NAME=\"menu\" NORESIZE SRC=\"CDware.head.html\">\n<FRAME SCROLLING=\"yes\" NAME=\"content\" NORESIZE MARGINHEIGHT=4 SRC=\"$HomePageName{$Comp}\">\n</BODY> </NOFRAME> </FRAMESET> </HTML>\n";
  579.             close(FRAMEFILE);
  580.         } else {
  581.             &PrintHtml("", "ERROR: Couldn't write $FRAMEFILENAME\n", "<BR>");
  582.         }
  583.  
  584.         $HEADFILENAME = "$PRODUCTS_DIR/$Comp/$HEADBASICNAME";
  585.         if (open (HEADFILE, "> $HEADFILENAME")) {
  586.             print HEADFILE "<html> <head>\n<title>CDware May 1996</title>\n</head>\n<BODY>\n<CENTER>\n<applet code=ImageMap.class width=596 height=36>\n<param name=highlight value=\"brighter60\">";
  587.             
  588.             $TestGif = 0;
  589.             if ($Platform{$Comp} =~ /demo/) {
  590.                 $TestGif ++;
  591.             }
  592.             if ($Platform{$Comp} =~ /testdrive/) {
  593.                 $TestGif += 2;
  594.             }
  595.             if ($Platform{$Comp} =~ /install/) {
  596.                 $TestGif += 4;
  597.             }
  598.             @BarFileNames = ("none", "rd", "td", "tdrd", "ts", "tsrd", "tdts", "samplebar");
  599.             print HEADFILE "<param name=img value=\"$PRODUCTS_DIR/CDware/images/$BarFileNames[$TestGif].gif\">\n";
  600.  
  601.             print HEADFILE "<param name=area1 value=\"HrefButtonArea,0,0,80,35,http://localhost:7999/.categories/?DEST=companies\" >\n";
  602.             print HEADFILE "<param name=area2 value=\"HrefButtonArea,81,0,84,35,http://localhost:7999/CDware/search.html\" >\n";
  603.             print HEADFILE "<param name=area3 value=\"HrefButtonArea,164,0,83,35,file:///tmp/httpd/.products/CDware/docs/info/Info.html\" >\n";
  604.             print HEADFILE "<param name=area4 value=\"HrefButtonArea,267,0,85,35,http://localhost:7999/cgi-bin/req_more_info.pl?$Comp\" >\n";
  605.  
  606.             $Area = 5;
  607.             if ($Platform{$Comp} =~ /demo/) {
  608.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,350,0,83,35,http://localhost:7999/$Comp/_install/install_show.sh\">\n";
  609.                 $Area ++;
  610.             }
  611.             if ($Platform{$Comp} =~ /testdrive/) {
  612.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,434,0,81,35,http://localhost:7999/$Comp/_install/run.sh\">\n";
  613.                 $Area ++;
  614.             }
  615.             if ($Platform{$Comp} =~ /install/) {
  616.                 print HEADFILE "<param name=area$Area value=\"HrefButtonArea,515,0,83,35,http://localhost:7999/$Comp/_install/install.sh\">\n";
  617.             }
  618.             
  619.             print HEADFILE "</applet> </CENTER> </BODY> </HTML>\n";
  620.  
  621.  
  622.             close(HEADFILE);
  623.         } else {
  624.             &PrintHtml("", "ERROR: Couldn't write $HEADFILENAME\n", "<BR>");
  625.         }
  626.  
  627.              #$HOMEFILENAME = "../$Comp/" . $HomePageName{$ShortDir};
  628.         #if (open (HOMEFILE, "$HOMEFILENAME")) {
  629.             #open (TMPFILE, "$TmpFile");
  630.             #while (<TMPFILE>) {
  631.                 #$Line = $_;
  632.                 #if ($Line =~ /^<applet class=cdbar/i) {
  633.                     #while (! <HOMEFILE> =~ /^<\/applet>/i) {
  634.                     #}
  635.                     #$TestGif = 0;
  636.                     #if ($Platform{$Comp} =~ /demo/) {
  637.                         #$TestGif ++;
  638.                     #}
  639.                     #if ($Platform{$Comp} =~ /testdrive/) {
  640.                         #$TestGif ++;
  641.                     #}
  642.                     #if ($Platform{$Comp} =~ /install/) {
  643.                         #$TestGif ++;
  644.                     #}
  645.                     #print TMPFILE "<app class=CDbar img=\"../CDware/images/none.gif";
  646.                     #print TMPFILE "highlight=brighter60";
  647. ##            print "area1=HrefButtonArea,0,0,80,35,file:///tmp/httpd/.products/CDware/index.html" >> applet
  648. ##            print "area2=HrefButtonArea,81,0,84,35,file:///tmp/httpd/.products/.categories/companies.html" >> applet
  649. ##            print "area3=HrefButtonArea,164,0,83,35,file:///tmp/httpd/.products/CDware/docs/info/Info.html" >> applet
  650. ##            print "area4=HrefButtonArea,267,0,85,35,file:///tmp/httpd/.products/DEV/disabled.html" >> applet
  651. ##            print ">" >> applet
  652. ##                        breaksw    
  653. ## 
  654.                     #next;
  655.                 #}
  656.                 #print TMPFILE $Line;
  657.             #}
  658.         #}
  659.         #rename($TmpFile, $HOMEFILENAME);
  660.     }
  661.     &PrintHtml("", "\tControl bar applets built...\n", "<BR>");
  662. }
  663. ###############################################################################
  664. ## CreateNames
  665. ###############################################################################
  666. sub CreateNames
  667. {
  668. open (REALNAMES, "> $PRODUCTS_DIR/.bin/real_names.txt");
  669.    write REALNAMES;
  670.     foreach $comp (keys(%Companies)) {
  671.         print REALNAMES "$comp\t$Companies{$comp}\n";
  672.     }
  673. # this is for directories without _info files
  674.    print REALNAMES "SunProducts\tSun Products\n";
  675.    print REALNAMES ".Internet\tInternet Articles\n";
  676. close(REALNAMES);
  677. }
  678.  
  679. ###############################################################################
  680. ## CreateProduct
  681. ###############################################################################
  682. sub CreateProduct
  683. {
  684.     &PrintHtml("<BR>", "\nCreating Products page...\n", "<BR>");
  685.  
  686.          $PRODFILENAME = "$CAT_DIR/products.html";
  687.          $PRODHEADFILENAME = "$CAT_DIR/products.head.html";
  688.     if (open (PRODFILE, "> $PRODFILENAME") && open(PRODHEADFILE, "> $PRODHEADFILENAME")) {
  689.         $old = select(PRODFILE);
  690.  
  691.         $~ = "CATBEGIN";
  692.         write PRODFILE;
  693.         $Letter = "0";
  694.         @Letters = ();
  695.         foreach $Prod (sort FilteredSort keys(%RevProd)) {
  696.             $ShortName = substr($RevProd{$Prod}, 0, length($RevProd{$Prod}) - 1);    
  697.             
  698.             #print STDOUT "        Prod=$Prod, ShortName=$ShortName.\n";
  699.             $ProdAb = $Prod;
  700.             $ProdAb =~ tr/a-z/A-Z/;
  701.             $ProdAb =~ s/^THE //;
  702.             $ProdAb =~ s/^[     ]*//;
  703.             unless ($ProdAb =~ /^$Letter/) {
  704.                 $Letter = substr($ProdAb, 0, 1);
  705.                 print PRODFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
  706.                 push (@Letters, $Letter);
  707.             }
  708.  
  709.                 #print PRODFILE "<DD><A HREF=file:///tmp/httpd/.products/$ShortName/$HomePageName{$ShortName}><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>\n";
  710.                 print PRODFILE "<DD><A HREF=file:///tmp/httpd/.products/$ShortName/$FRAMEBASICNAME><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>";
  711. #
  712. #     this is for testdrive, install, demo icons
  713. #
  714.                                 if ($Platform{$ShortName} =~ /demo/ ) {
  715.                                 print PRODFILE "<img src=\"../CDware/images/demo.gif\">";
  716.                                 }
  717.                                 if ($Platform{$ShortName} =~ /testdrive/ ) {
  718.                                 print PRODFILE "<img src=\"../CDware/images/testdrive.gif\">";
  719.                                 }
  720.                                 if ($Platform{$ShortName} =~ /install/ ) {
  721.                                 print PRODFILE "<img src=\"../CDware/images/install.gif\">";
  722.                                 }
  723.                                 print PRODFILE "\n";
  724.  
  725.             }
  726.      
  727.         $~ = "CATEND";
  728.         write PRODFILE;
  729.         close (PRODFILE);
  730.  
  731.         select(PRODHEADFILE);
  732.         $~ = "CATHEADERBEGIN";
  733.         write PRODHEADFILE;
  734.                 print PRODHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/products.gif\"  alt=\"\" USEMAP=#banner ismap>";
  735.         print PRODHEADFILE "<MAP Name=\"banner\">";
  736.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=27,4,96,44>\n";
  737.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Services\" COORDS=27,36,96,126>\n";
  738.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Hardware\" COORDS=96,0,162,44>\n";
  739.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Software\" COORDS=96,38,165,112>\n";
  740.                 print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"../CDware/index.html\" COORDS=200,0,595,74>\n";
  741.  
  742.         print PRODHEADFILE "</MAP><br></td><tr><td><center>";
  743.         #$~ = "CATHEADERMIDDLE";
  744.         #write PRODHEADFILE;
  745.  
  746.             #print PRODHEADFILE `cat $Header{$catword}`;
  747.         #unless ($Categories{$catword} eq "") {
  748.                 #print PRODHEADFILE "<H1>$Categories{$catword}</H1>";
  749.         #}
  750.  
  751.         #@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
  752.         print PRODHEADFILE "<B><FONT size=\"4\"> Go to:\n";
  753.         foreach $letter (@Letters) {
  754. # below changed by Marc
  755.             #print PRODHEADFILE "<A HREF=\"?DEST=$catword&L=$letter\">$letter</A>\n";
  756.             print PRODHEADFILE "<A HREF=\"?DEST=products&L=$letter\">$letter</A>\n";
  757.         }
  758.         $~ = "CATHEADEREND";
  759.         write PRODHEADFILE;
  760.         close (PRODHEADFILE);
  761.  
  762.         &PrintHtml("<DD>", "\tproducts.html page created.\n", "<BR>");
  763.  
  764.         select($old);
  765.     }
  766. }
  767. ##############################################################################
  768. # MAIN PART: Decode the parameters and calls the correct subfunctions
  769. ##############################################################################
  770. #$arg0=$0
  771. #$DIR=$arg0:h
  772. #$ProgName=$arg0:t
  773.  
  774. #if ("X$DIR" == "X$ProgName") {
  775.     #$DIR='.'
  776. #}
  777.  
  778. #if (-e "./$ProgName") {
  779.     #$DIR=$cwd
  780. #}
  781.  
  782. #cd  $DIR
  783. #print `pwd`;
  784.  
  785. #
  786. # Create the category pages seen in the categories.txt file
  787. #
  788.  
  789. #foreach $en (sort keys %ENV) {
  790.     #print "$en = $ENV{$en}\n";
  791. #}
  792.  
  793.  
  794.     $CATS = "false";
  795.     $APPLETS = "false";
  796.     $COMP = "false";
  797.     $CHECK = "false";
  798.     $REPORT = "false";
  799.     $HTML_FORMAT = "false";
  800.     $PROD = "false";
  801.     $SOFT = "false";
  802.     $PLATFORM = "sparc";
  803.  
  804.     $DIR_IMAGES = "../CDware/images/";
  805.     $PRODUCTS_DIR = "../";
  806.  
  807.     # parse command line arguements
  808.  
  809.     #print "Arg=@ARGV.\n";
  810.     @ARGREPORT = @ARGV;
  811.     if (@ARGV == 0) {
  812.         @ARGV=("-?");
  813.     }
  814.  
  815.         while ($ARGV[0] =~ /^-/) {
  816.             $_ = shift;
  817.             #print "Arg=$_.\n";
  818.             if (/^-cats$/) {
  819.                 $CATS = "true";
  820.             } elsif (/^-applets/) {
  821.                 $APPLETS = "true";
  822.             } elsif (/^-comp/) {
  823.                 $COMP = "true";
  824.             } elsif (/^-checkall/) {
  825.                 $CHECK = "true";
  826.                 $CHECKLINKS = "true";
  827.             } elsif (/^-checklinks/) {
  828.                 $CHECKLINKS = "true";
  829.             } elsif (/^-check/) {
  830.                 $CHECK = "true";
  831.             } elsif (/^-soft/) {
  832.                 $SOFT = "true";
  833.             } elsif (/^-report/) {
  834.                 $REPORT = "true";
  835.             } elsif (/^-html/) {
  836.                 $HTML_FORMAT = "true";
  837.                         } elsif (/^-names/) {
  838.                                 $NAMES = "true";
  839.             } elsif (/^-dir/) {
  840.                 $PRODUCTS_DIR = ($1 ? $1 : shift);
  841.                 unless (-s $PRODUCTS_DIR) {
  842.                     die "ERROR: $PRODUCTS_DIR is not a directory\n";
  843.                 }
  844.             } elsif (/^-prod/) {
  845.                 $PROD = "true";
  846.             } elsif (/^-all/) {
  847.                 $PROD = "true" ;
  848.                 $COMP = "true";
  849.                 $SOFT = "true";
  850.                 $APPLETS = "true";
  851.                 $CATS = "true";
  852.                 $NAMES = "true";
  853.             } elsif (/^-x86/) {
  854.                 $PLATFORM = x86;
  855.                 $SRC_DIR = "../../../x86.image";
  856.             } elsif (/^-[?Hh]/) {
  857.                 die "Usage: update.pl [ -cats | -applets | -soft | -prod | -all | -dir dirname | -x86  | -report | -html | -names | -check]\n\tall: = -cats -prod -applets\n\tapplets: creates an applet in the customer home page.\n\tcats: creates the category and company pages.\n\tcheck: check the _info file, and other things for errors.\n\tdir: gives the directory where the companies are located.\n\thtml: when -report is selected, creates an output in HTML format.\n\tnames: create list of company names keyed on directory name.\n\tprod: creates the product page.\n\treport: creates a report for all companies.\n\tsoft: creates the Software pages\n\tx86: for future usage.\n";
  858.             } else {
  859.                 die "Unrecognized switch: $_ (try -?)\n";
  860.             }
  861.         }
  862.  
  863. &PrintHtml("<HTML> <HEAD> <title>Catalyst CDware - status on " . `date` . "</title> </HEAD> <BODY bgcolor=\"#DDDDDD\"><H1>", "Catalyst CDware - status on " . `date` . "\n", "</H1>");
  864.  
  865.  
  866. # check if root user
  867. if ( $ENV{"USER"} ne "root" ) {
  868.         &PrintHtml("", "WARNING: This program should be run as root user.\n", "<BR>");
  869.     }
  870.  
  871.  
  872.     if ($REPORT ne "true") {
  873.         $HostName = `hostname`;
  874.         chop $HostName;
  875.         &PrintHtml("", "\nUpdating CDware on $HostName:\n\n", "<BR>");
  876.     if (open (REPORTFILE, ">> $PRODUCTS_DIR/.update.txt")) {
  877.         $Date = `date`;
  878.         chop $Date;
  879.         print REPORTFILE "update by " . $ENV{"USER"} . " on $Date from $HostName\n\tparams: ";
  880.         while (@ARGREPORT) {
  881.             print REPORTFILE "$ARGREPORT[0], ";
  882.             shift @ARGREPORT;
  883.         }
  884.         print REPORTFILE "\n\n";
  885.         close (REPORTFILE);
  886.     } else {
  887.         &PrintHtml("", "WARNING: Cannot open $PRODUCTS_DIR/.update.txt\n", "<BR>");
  888.     }
  889. }
  890.  
  891. &InitCompInfo();
  892.  
  893. $CAT_DIR = "$PRODUCTS_DIR/.categories";
  894. $FRAMEBASICNAME = "CDware.frame.html";
  895. $HEADBASICNAME = "CDware.head.html";
  896. #print $CAT_DIR;
  897. if ( ! -d $CAT_DIR ) {
  898.     mkdir($CAT_DIR, 0777);
  899. }
  900.  
  901. if ( $CHECK eq "true" ) {
  902.     &CheckFiles();
  903. }
  904. if ( $NAMES eq "true" ) {
  905.         &CreateNames();  
  906. }
  907.  
  908.  
  909. if ( $CHECKLINKS eq "true" ) {
  910.     &CheckLinks();
  911. }
  912.  
  913. if ( $CATS eq "true" ) {
  914.     &CreateCat();
  915. }
  916.  
  917. if ( $SOFT eq "true" ) {
  918.     &CreateSoft();
  919. }
  920.  
  921. #
  922. # Get all CDware menu bar components and put in file 
  923. # for building of front page applet 
  924. #
  925. if ( $APPLETS eq "true" ) {
  926.     &CreateApplet();
  927. }
  928.  
  929. if ( $PROD eq "true" ) {
  930.     &CreateProduct();
  931. }
  932.  
  933. if ( $REPORT eq "true" ) {
  934.     &CreateReport();
  935. }
  936.  
  937. #
  938. # Compile list of companies, place in 'companies' file
  939. #
  940. #if ( $COMP eq "true" ) {
  941.     #&CreateComp();
  942. #}
  943.  
  944. #
  945. # Compile list of products, place in 'products' file
  946. #
  947.  
  948. #print "\n\n\nPress <RETURN> to close the window and test your submission..\n.";
  949. #read answer;
  950.  
  951. ################################################################################
  952. # Define FORMATS (no more code)
  953. ################################################################################
  954. format CATHEADERBEGIN =
  955. <html>
  956. <body  BGCOLOR="#8c8cde" link=#33ff00 vlink=#33ff00 >
  957. <BASE TARGET="_top" HREF="http://localhost:7999/.categories/">
  958. <center>
  959. <form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_CDware">
  960. <table border = 3><td>
  961. <MAP Name="banner">
  962. .
  963.  
  964. format CATHEADERMIDDLE =
  965. </MAP><br></td><tr><td><center>
  966. <B><FONT size="4">
  967. #<B>Go to:  </b>
  968. .
  969.  
  970. format CATHEADEREND =
  971. <br> Search: <input type="text" name="isindex" size="12" >
  972. </font>
  973. </td><tr></table>
  974. </form>
  975. </center>
  976. </body>
  977. </html>
  978. .
  979.  
  980. format CATBEGIN =
  981. <HTML>
  982.         <!-- header section-->
  983. <HEAD>
  984. <title>Catalyst CDware - SPARC Edition - May  through August</title>
  985. </HEAD>
  986.         <!-- document body-->
  987. <BODY bgcolor="#DDDDDD">
  988. <BASE TARGET="_top">
  989. <DL>
  990. #<hr>
  991. #<p>
  992. .
  993.  
  994. format CATEND =
  995. </B></B><DT>
  996. <hr>
  997. </BODY>
  998. </HTML>
  999. .
  1000.  
  1001. format SOFTWAREHEAD =
  1002. <HTML>
  1003.         <!-- header section-->
  1004. <HEAD>
  1005. <TITLE>Catalyst CDware - Software Categories</TITLE>
  1006. </HEAD>
  1007.         <!-- document body-->
  1008. <BODY BGCOLOR="8c8cde" link=#33ff00 vlink=#33ff00>
  1009. <CENTER>
  1010. <BASE TARGET="_top" HREF="http://localhost:7999/.categories/">
  1011. <form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_CDware">
  1012. <table border = 3><td>
  1013. <IMG border=0 SRC="../CDware/images/software.gif" alt="" USEMAP=#banner ismap>
  1014. <MAP Name="banner">
  1015. <AREA SHAPE="RECT" HREF="?DEST=companies" COORDS=27,4,96,44>
  1016. <AREA SHAPE="RECT" HREF="?DEST=products" COORDS=27,36,96,126>
  1017. <AREA SHAPE="RECT" HREF="?DEST=Hardware" COORDS=96,0,165,44>
  1018. <AREA SHAPE="RECT" HREF="?DEST=Services" COORDS=96,38,165,112>
  1019. <AREA SHAPE="RECT" HREF="../CDware/index.html" COORDS=200,0,595,74>
  1020. </MAP>
  1021. </TD><TR><TD>
  1022. <CENTER>
  1023. <FONT size="4">
  1024. <br>Search: <input type="text" name="isindex" size="12" >
  1025. </font>
  1026. </CENTER>
  1027. </td><tr></table>
  1028. </CENTER>
  1029. </form>
  1030. </BODY>
  1031. </HTML>
  1032. .
  1033. ##############################################################################
  1034. format FRAMEHEADER =
  1035. Content-type: text/html
  1036.  
  1037.  
  1038.  
  1039. <html>
  1040. <head>
  1041. <title>CDware May 1996</title>
  1042. </head>
  1043. <FRAMESET ROWS="20,80">
  1044. #$size
  1045. .
  1046. ##############################################################################
  1047. format FRAMEFOOTER =
  1048. <BODY BACKGROUND="icons/bkgrnds/homebg.gif" body bgcolor=black text=#ffffff link=#dddddd alink=#ffff00 vlink=#bbbbbb>
  1049.  
  1050. <FONT SIZE=-1>Copyright \0511995 <B><A
  1051.  
  1052. </BODY>
  1053. </NOFRAME>
  1054. </FRAMESET>
  1055. </HTML>
  1056. .
  1057.